<?xml version="1.0" encoding="UTF-8" ?>
<class name="Environment" inherits="Resource" category="Core" version="3.1">
	<brief_description>
		Resource for environment nodes (like [WorldEnvironment]) that define multiple rendering options.
	</brief_description>
	<description>
		Resource for environment nodes (like [WorldEnvironment]) that define multiple environment operations (such as background [Sky] or [Color], ambient light, fog, depth-of-field...). These parameters affect the final render of the scene. The order of these operations is:
		- DOF Blur
		- Motion Blur
		- Bloom
		- Tonemap (auto exposure)
		- Adjustments
	</description>
	<tutorials>
		<link>https://docs.godotengine.org/en/latest/tutorials/3d/environment_and_post_processing.html</link>
		<link>https://docs.godotengine.org/en/latest/tutorials/3d/high_dynamic_range.html</link>
	</tutorials>
	<demos>
	</demos>
	<methods>
	</methods>
	<members>
		<member name="adjustment_brightness" type="float" setter="set_adjustment_brightness" getter="get_adjustment_brightness">
			Global brightness value of the rendered scene (default value is 1).
		</member>
		<member name="adjustment_color_correction" type="Texture" setter="set_adjustment_color_correction" getter="get_adjustment_color_correction">
			Applies the provided [Texture] resource to affect the global color aspect of the rendered scene.
		</member>
		<member name="adjustment_contrast" type="float" setter="set_adjustment_contrast" getter="get_adjustment_contrast">
			Global contrast value of the rendered scene (default value is 1).
		</member>
		<member name="adjustment_enabled" type="bool" setter="set_adjustment_enable" getter="is_adjustment_enabled">
			Enables the adjustment_* options provided by this resource. If false, adjustments modifications will have no effect on the rendered scene.
		</member>
		<member name="adjustment_saturation" type="float" setter="set_adjustment_saturation" getter="get_adjustment_saturation">
			Global color saturation value of the rendered scene (default value is 1).
		</member>
		<member name="ambient_light_color" type="Color" setter="set_ambient_light_color" getter="get_ambient_light_color">
			[Color] of the ambient light.
		</member>
		<member name="ambient_light_energy" type="float" setter="set_ambient_light_energy" getter="get_ambient_light_energy">
			Energy of the ambient light. The higher the value, the stronger the light.
		</member>
		<member name="ambient_light_sky_contribution" type="float" setter="set_ambient_light_sky_contribution" getter="get_ambient_light_sky_contribution">
			Defines the amount of light that the sky brings on the scene. A value of 0 means that the sky's light emission has no effect on the scene illumination, thus all ambient illumination is provided by the ambient light. On the contrary, a value of 1 means that all the light that affects the scene is provided by the sky, thus the ambient light parameter has no effect on the scene.
		</member>
		<member name="auto_exposure_enabled" type="bool" setter="set_tonemap_auto_exposure" getter="get_tonemap_auto_exposure">
			Enables the tonemapping auto exposure mode of the scene renderer. If activated, the renderer will automatically determine the exposure setting to adapt to the illumination of the scene and the observed light.
		</member>
		<member name="auto_exposure_max_luma" type="float" setter="set_tonemap_auto_exposure_max" getter="get_tonemap_auto_exposure_max">
			Maximum luminance value for the auto exposure.
		</member>
		<member name="auto_exposure_min_luma" type="float" setter="set_tonemap_auto_exposure_min" getter="get_tonemap_auto_exposure_min">
			Minimum luminance value for the auto exposure.
		</member>
		<member name="auto_exposure_scale" type="float" setter="set_tonemap_auto_exposure_grey" getter="get_tonemap_auto_exposure_grey">
			Scale of the auto exposure effect. Affects the intensity of auto exposure.
		</member>
		<member name="auto_exposure_speed" type="float" setter="set_tonemap_auto_exposure_speed" getter="get_tonemap_auto_exposure_speed">
			Speed of the auto exposure effect. Affects the time needed for the camera to perform auto exposure.
		</member>
		<member name="background_canvas_max_layer" type="int" setter="set_canvas_max_layer" getter="get_canvas_max_layer">
			Maximum layer id (if using Layer background mode).
		</member>
		<member name="background_color" type="Color" setter="set_bg_color" getter="get_bg_color">
			Color displayed for clear areas of the scene (if using Custom color or Color+Sky background modes).
		</member>
		<member name="background_energy" type="float" setter="set_bg_energy" getter="get_bg_energy">
			Power of light emitted by the background.
		</member>
		<member name="background_mode" type="int" setter="set_background" getter="get_background" enum="Environment.BGMode">
			Defines the mode of background.
		</member>
		<member name="background_sky" type="Sky" setter="set_sky" getter="get_sky">
			[Sky] resource defined as background.
		</member>
		<member name="background_sky_custom_fov" type="float" setter="set_sky_custom_fov" getter="get_sky_custom_fov">
			[Sky] resource's custom field of view.
		</member>
		<member name="background_sky_orientation" type="Basis" setter="set_sky_orientation" getter="get_sky_orientation">
			[Sky] resource's rotation expressed as a [Basis]
		</member>
		<member name="background_sky_rotation" type="Vector3" setter="set_sky_rotation" getter="get_sky_rotation">
			[Sky] resource's rotation expressed as euler angles in radians
		</member>
		<member name="background_sky_rotation_degrees" type="Vector3" setter="set_sky_rotation_degrees" getter="get_sky_rotation_degrees">
			[Sky] resource's rotation expressed as euler angles in degrees
		</member>
		<member name="dof_blur_far_amount" type="float" setter="set_dof_blur_far_amount" getter="get_dof_blur_far_amount">
			Amount of far blur.
		</member>
		<member name="dof_blur_far_distance" type="float" setter="set_dof_blur_far_distance" getter="get_dof_blur_far_distance">
			Distance from the camera where the far blur effect affects the rendering.
		</member>
		<member name="dof_blur_far_enabled" type="bool" setter="set_dof_blur_far_enabled" getter="is_dof_blur_far_enabled">
			Enables the far blur effect.
		</member>
		<member name="dof_blur_far_quality" type="int" setter="set_dof_blur_far_quality" getter="get_dof_blur_far_quality" enum="Environment.DOFBlurQuality">
			Quality of the far blur quality.
		</member>
		<member name="dof_blur_far_transition" type="float" setter="set_dof_blur_far_transition" getter="get_dof_blur_far_transition">
			Transition between no-blur area and far blur.
		</member>
		<member name="dof_blur_near_amount" type="float" setter="set_dof_blur_near_amount" getter="get_dof_blur_near_amount">
			Amount of near blur.
		</member>
		<member name="dof_blur_near_distance" type="float" setter="set_dof_blur_near_distance" getter="get_dof_blur_near_distance">
			Distance from the camera where the near blur effect affects the rendering.
		</member>
		<member name="dof_blur_near_enabled" type="bool" setter="set_dof_blur_near_enabled" getter="is_dof_blur_near_enabled">
			Enables the near blur effect.
		</member>
		<member name="dof_blur_near_quality" type="int" setter="set_dof_blur_near_quality" getter="get_dof_blur_near_quality" enum="Environment.DOFBlurQuality">
			Quality of the near blur quality.
		</member>
		<member name="dof_blur_near_transition" type="float" setter="set_dof_blur_near_transition" getter="get_dof_blur_near_transition">
			Transition between near blur and no-blur area.
		</member>
		<member name="fog_color" type="Color" setter="set_fog_color" getter="get_fog_color">
			Fog's [Color].
		</member>
		<member name="fog_depth_begin" type="float" setter="set_fog_depth_begin" getter="get_fog_depth_begin">
			Fog's depth starting distance from the camera.
		</member>
		<member name="fog_depth_curve" type="float" setter="set_fog_depth_curve" getter="get_fog_depth_curve">
			Value defining the fog depth intensity.
		</member>
		<member name="fog_depth_enabled" type="bool" setter="set_fog_depth_enabled" getter="is_fog_depth_enabled">
			Enables the fog depth.
		</member>
		<member name="fog_depth_end" type="float" setter="set_fog_depth_end" getter="get_fog_depth_end">
		</member>
		<member name="fog_enabled" type="bool" setter="set_fog_enabled" getter="is_fog_enabled">
			Enables the fog. Needs fog_height_enabled and/or for_depth_enabled to actually display fog.
		</member>
		<member name="fog_height_curve" type="float" setter="set_fog_height_curve" getter="get_fog_height_curve">
			Value defining the fog height intensity.
		</member>
		<member name="fog_height_enabled" type="bool" setter="set_fog_height_enabled" getter="is_fog_height_enabled">
			Enables the fog height.
		</member>
		<member name="fog_height_max" type="float" setter="set_fog_height_max" getter="get_fog_height_max">
			Maximum height of fog.
		</member>
		<member name="fog_height_min" type="float" setter="set_fog_height_min" getter="get_fog_height_min">
			Minimum height of fog.
		</member>
		<member name="fog_sun_amount" type="float" setter="set_fog_sun_amount" getter="get_fog_sun_amount">
			Amount of sun that affects the fog rendering.
		</member>
		<member name="fog_sun_color" type="Color" setter="set_fog_sun_color" getter="get_fog_sun_color">
			Sun [Color].
		</member>
		<member name="fog_transmit_curve" type="float" setter="set_fog_transmit_curve" getter="get_fog_transmit_curve">
			Amount of light that the fog transmits.
		</member>
		<member name="fog_transmit_enabled" type="bool" setter="set_fog_transmit_enabled" getter="is_fog_transmit_enabled">
			Enables fog's light transmission. If enabled, lets reflections light to be transmitted by the fog.
		</member>
		<member name="glow_bicubic_upscale" type="bool" setter="set_glow_bicubic_upscale" getter="is_glow_bicubic_upscale_enabled">
		</member>
		<member name="glow_blend_mode" type="int" setter="set_glow_blend_mode" getter="get_glow_blend_mode" enum="Environment.GlowBlendMode">
			Glow blending mode.
		</member>
		<member name="glow_bloom" type="float" setter="set_glow_bloom" getter="get_glow_bloom">
			Bloom value (global glow).
		</member>
		<member name="glow_enabled" type="bool" setter="set_glow_enabled" getter="is_glow_enabled">
			Enables glow rendering.
		</member>
		<member name="glow_hdr_luminance_cap" type="float" setter="set_glow_hdr_luminance_cap" getter="get_glow_hdr_luminance_cap">
		</member>
		<member name="glow_hdr_scale" type="float" setter="set_glow_hdr_bleed_scale" getter="get_glow_hdr_bleed_scale">
			Bleed scale of the HDR glow.
		</member>
		<member name="glow_hdr_threshold" type="float" setter="set_glow_hdr_bleed_threshold" getter="get_glow_hdr_bleed_threshold">
			Bleed threshold of the HDR glow.
		</member>
		<member name="glow_intensity" type="float" setter="set_glow_intensity" getter="get_glow_intensity">
			Glow intensity.
		</member>
		<member name="glow_levels/1" type="bool" setter="set_glow_level" getter="is_glow_level_enabled">
			First level of glow (most local).
		</member>
		<member name="glow_levels/2" type="bool" setter="set_glow_level" getter="is_glow_level_enabled">
			Second level of glow.
		</member>
		<member name="glow_levels/3" type="bool" setter="set_glow_level" getter="is_glow_level_enabled">
			Third level of glow.
		</member>
		<member name="glow_levels/4" type="bool" setter="set_glow_level" getter="is_glow_level_enabled">
			Fourth level of glow.
		</member>
		<member name="glow_levels/5" type="bool" setter="set_glow_level" getter="is_glow_level_enabled">
			Fifth level of glow.
		</member>
		<member name="glow_levels/6" type="bool" setter="set_glow_level" getter="is_glow_level_enabled">
			Sixth level of glow.
		</member>
		<member name="glow_levels/7" type="bool" setter="set_glow_level" getter="is_glow_level_enabled">
			Seventh level of glow (most global).
		</member>
		<member name="glow_strength" type="float" setter="set_glow_strength" getter="get_glow_strength">
			Glow strength.
		</member>
		<member name="ss_reflections_depth_tolerance" type="float" setter="set_ssr_depth_tolerance" getter="get_ssr_depth_tolerance">
		</member>
		<member name="ss_reflections_enabled" type="bool" setter="set_ssr_enabled" getter="is_ssr_enabled">
		</member>
		<member name="ss_reflections_fade_in" type="float" setter="set_ssr_fade_in" getter="get_ssr_fade_in">
		</member>
		<member name="ss_reflections_fade_out" type="float" setter="set_ssr_fade_out" getter="get_ssr_fade_out">
		</member>
		<member name="ss_reflections_max_steps" type="int" setter="set_ssr_max_steps" getter="get_ssr_max_steps">
		</member>
		<member name="ss_reflections_roughness" type="bool" setter="set_ssr_rough" getter="is_ssr_rough">
		</member>
		<member name="ssao_ao_channel_affect" type="float" setter="set_ssao_ao_channel_affect" getter="get_ssao_ao_channel_affect">
		</member>
		<member name="ssao_bias" type="float" setter="set_ssao_bias" getter="get_ssao_bias">
		</member>
		<member name="ssao_blur" type="int" setter="set_ssao_blur" getter="is_ssao_blur_enabled" enum="Environment.SSAOBlur">
		</member>
		<member name="ssao_color" type="Color" setter="set_ssao_color" getter="get_ssao_color">
		</member>
		<member name="ssao_edge_sharpness" type="float" setter="set_ssao_edge_sharpness" getter="get_ssao_edge_sharpness">
		</member>
		<member name="ssao_enabled" type="bool" setter="set_ssao_enabled" getter="is_ssao_enabled">
		</member>
		<member name="ssao_intensity" type="float" setter="set_ssao_intensity" getter="get_ssao_intensity">
		</member>
		<member name="ssao_intensity2" type="float" setter="set_ssao_intensity2" getter="get_ssao_intensity2">
		</member>
		<member name="ssao_light_affect" type="float" setter="set_ssao_direct_light_affect" getter="get_ssao_direct_light_affect">
		</member>
		<member name="ssao_quality" type="int" setter="set_ssao_quality" getter="get_ssao_quality" enum="Environment.SSAOQuality">
		</member>
		<member name="ssao_radius" type="float" setter="set_ssao_radius" getter="get_ssao_radius">
		</member>
		<member name="ssao_radius2" type="float" setter="set_ssao_radius2" getter="get_ssao_radius2">
		</member>
		<member name="tonemap_exposure" type="float" setter="set_tonemap_exposure" getter="get_tonemap_exposure">
			Default exposure for tonemap.
		</member>
		<member name="tonemap_mode" type="int" setter="set_tonemapper" getter="get_tonemapper" enum="Environment.ToneMapper">
			Tonemapping mode.
		</member>
		<member name="tonemap_white" type="float" setter="set_tonemap_white" getter="get_tonemap_white">
			White reference value for tonemap.
		</member>
	</members>
	<constants>
		<constant name="BG_KEEP" value="5" enum="BGMode">
			Keep on screen every pixel drawn in the background.
		</constant>
		<constant name="BG_CLEAR_COLOR" value="0" enum="BGMode">
			Clear the background using the project's clear color.
		</constant>
		<constant name="BG_COLOR" value="1" enum="BGMode">
			Clear the background using a custom clear color.
		</constant>
		<constant name="BG_SKY" value="2" enum="BGMode">
			Display a user-defined sky in the background.
		</constant>
		<constant name="BG_COLOR_SKY" value="3" enum="BGMode">
			Clear the background using a custom clear color and allows defining a sky for shading and reflection.
		</constant>
		<constant name="BG_CANVAS" value="4" enum="BGMode">
			Display a [CanvasLayer] in the background.
		</constant>
		<constant name="BG_MAX" value="6" enum="BGMode">
			Helper constant keeping track of the enum's size, has no direct usage in API calls.
		</constant>
		<constant name="GLOW_BLEND_MODE_ADDITIVE" value="0" enum="GlowBlendMode">
			Additive glow blending mode. Mostly used for particles, glows (bloom), lens flare, bright sources.
		</constant>
		<constant name="GLOW_BLEND_MODE_SCREEN" value="1" enum="GlowBlendMode">
			Screen glow blending mode. Increases brightness, used frequently with bloom.
		</constant>
		<constant name="GLOW_BLEND_MODE_SOFTLIGHT" value="2" enum="GlowBlendMode">
			Softlight glow blending mode. Modifies contrast, exposes shadows and highlights, vivid bloom.
		</constant>
		<constant name="GLOW_BLEND_MODE_REPLACE" value="3" enum="GlowBlendMode">
			Replace glow blending mode. Replaces all pixels' color by the glow value.
		</constant>
		<constant name="TONE_MAPPER_LINEAR" value="0" enum="ToneMapper">
			Linear tonemapper operator. Reads the linear data and performs an exposure adjustment.
		</constant>
		<constant name="TONE_MAPPER_REINHARDT" value="1" enum="ToneMapper">
			Reinhardt tonemapper operator. Performs a variation on rendered pixels' colors by this formula: color = color / (1 + color).
		</constant>
		<constant name="TONE_MAPPER_FILMIC" value="2" enum="ToneMapper">
			Filmic tonemapper operator.
		</constant>
		<constant name="TONE_MAPPER_ACES" value="3" enum="ToneMapper">
			Academy Color Encoding System tonemapper operator.
		</constant>
		<constant name="DOF_BLUR_QUALITY_LOW" value="0" enum="DOFBlurQuality">
			Low depth-of-field blur quality.
		</constant>
		<constant name="DOF_BLUR_QUALITY_MEDIUM" value="1" enum="DOFBlurQuality">
			Medium depth-of-field blur quality.
		</constant>
		<constant name="DOF_BLUR_QUALITY_HIGH" value="2" enum="DOFBlurQuality">
			High depth-of-field blur quality.
		</constant>
		<constant name="SSAO_BLUR_DISABLED" value="0" enum="SSAOBlur">
		</constant>
		<constant name="SSAO_BLUR_1x1" value="1" enum="SSAOBlur">
		</constant>
		<constant name="SSAO_BLUR_2x2" value="2" enum="SSAOBlur">
		</constant>
		<constant name="SSAO_BLUR_3x3" value="3" enum="SSAOBlur">
		</constant>
		<constant name="SSAO_QUALITY_LOW" value="0" enum="SSAOQuality">
		</constant>
		<constant name="SSAO_QUALITY_MEDIUM" value="1" enum="SSAOQuality">
		</constant>
		<constant name="SSAO_QUALITY_HIGH" value="2" enum="SSAOQuality">
		</constant>
	</constants>
</class>
